-
Notifications
You must be signed in to change notification settings - Fork 30
Prepare the driver to work with newer server releases than its own #215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This commit relaxes the version check the driver does on connect: this version compatibility is migrated on the server and the driver only checks that server's version is more recent than a set minimum (that of the release that applies version policy on the server).
remove superfluous defines
This commit adds the newly required 'version' field into the REST request objects.
This commit fixes two issues: - the "version" field is only required for "query" requst objects, but not needed for "cursor" (paginating) ones; - the lenght of the version field value is now correctly estimated in CBOR encoding.
Update position of the "version" field in expected output of the request object.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
But since the PR title goes into the release notes it might be best to change it to something like "Make ODBC drivers work with a wider range of server versions" or something like that. If I was a user suffering from the strict version compatibility checking then seeing that in the release notes would tell me my problem was solved. (If there is going to be another PR that completes the transition and has a title like that then this one can stay as-is.)
Thanks for the suggestion, title updated. |
) * relax server's version checking This commit relaxes the version check the driver does on connect: this version compatibility is migrated on the server and the driver only checks that server's version is more recent than a set minimum (that of the release that applies version policy on the server). * remove unused defines remove superfluous defines * add 'version' field into request objects This commit adds the newly required 'version' field into the REST request objects. * only add the "version" to "query" objects This commit fixes two issues: - the "version" field is only required for "query" requst objects, but not needed for "cursor" (paginating) ones; - the lenght of the version field value is now correctly estimated in CBOR encoding. * update unit tests to "version" in query-req only Update position of the "version" field in expected output of the request object. (cherry picked from commit 8b045b1)
This commit adds a new feature that allows the user to limit the size of the string types (TEXT, KEYWORD & co.). This is needed for those applications that won't accept the large maxes that ES does for the fields of these types. The change will manifest itself as: - limitation of the COLUMN_SIZE, BUFFER_LENGHT and CHAR_OCTET_LENGTH in the SQLColumns output; - limitation of the "display size" attribute in the description of the columns of the above mentioned types; - truncation of the results to the configured limit for the columns of the above mentioned types. The commit also adds unit tests for the "faked" (i.e. driver-returned results) catalog functions, removes stale DSN attribute definition (left over from elastic#215) and corrects the row index in a debug statement.
* introduce new varchar limitation option This commit adds a new feature that allows the user to limit the size of the string types (TEXT, KEYWORD & co.). This is needed for those applications that won't accept the large maxes that ES does for the fields of these types. The change will manifest itself as: - limitation of the COLUMN_SIZE, BUFFER_LENGHT and CHAR_OCTET_LENGTH in the SQLColumns output; - limitation of the "display size" attribute in the description of the columns of the above mentioned types; - truncation of the results to the configured limit for the columns of the above mentioned types. The commit also adds unit tests for the "faked" (i.e. driver-returned results) catalog functions, removes stale DSN attribute definition (left over from #215) and corrects the row index in a debug statement. * add new integration testing running mode Add new option to execute only the tests requiring no indexing of data (currently server info-fetching tests and the protocol tests). The commit also sets the autocommit as parameter to connection function, instead of the subsequent operation.
* introduce new varchar limitation option This commit adds a new feature that allows the user to limit the size of the string types (TEXT, KEYWORD & co.). This is needed for those applications that won't accept the large maxes that ES does for the fields of these types. The change will manifest itself as: - limitation of the COLUMN_SIZE, BUFFER_LENGHT and CHAR_OCTET_LENGTH in the SQLColumns output; - limitation of the "display size" attribute in the description of the columns of the above mentioned types; - truncation of the results to the configured limit for the columns of the above mentioned types. The commit also adds unit tests for the "faked" (i.e. driver-returned results) catalog functions, removes stale DSN attribute definition (left over from #215) and corrects the row index in a debug statement. * add new integration testing running mode Add new option to execute only the tests requiring no indexing of data (currently server info-fetching tests and the protocol tests). The commit also sets the autocommit as parameter to connection function, instead of the subsequent operation. (cherry picked from commit 77dc4ff)
* introduce new varchar limitation option This commit adds a new feature that allows the user to limit the size of the string types (TEXT, KEYWORD & co.). This is needed for those applications that won't accept the large maxes that ES does for the fields of these types. The change will manifest itself as: - limitation of the COLUMN_SIZE, BUFFER_LENGHT and CHAR_OCTET_LENGTH in the SQLColumns output; - limitation of the "display size" attribute in the description of the columns of the above mentioned types; - truncation of the results to the configured limit for the columns of the above mentioned types. The commit also adds unit tests for the "faked" (i.e. driver-returned results) catalog functions, removes stale DSN attribute definition (left over from #215) and corrects the row index in a debug statement. * add new integration testing running mode Add new option to execute only the tests requiring no indexing of data (currently server info-fetching tests and the protocol tests). The commit also sets the autocommit as parameter to connection function, instead of the subsequent operation. (cherry picked from commit 77dc4ff)
This PR relaxes the version check the driver does on connect: this
version compatibility is migrated on the server and the driver only
checks that server's version is more recent than a set minimum (that of
the release that applies version policy on the server).
(Related to elastic/elasticsearch#53082)